<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<meta http-equiv="cache-control" content="no-cache">
<title>Genivia - gsoapWinInet.cpp File Reference</title>
<link href="genivia_tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="genivia_content.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="top">
 <div id="titlearea">
  <table height="72px" width="100%" cellspacing="0" cellpadding="0">
   <tbody>
    <tr>
     <td width="10%">&nbsp;</td>
     <td width="175px"><a href="https://www.genivia.com"><img alt="Genivia" src="GeniviaLogo2_trans_noslogan.png"/></a></td>
     <td class="tab_home"><a href="https://www.genivia.com">Home</a></td>
     <td class="tab_home"><a href="https://www.genivia.com/docs.html">Documentation</a></td>
     <td>
      <div style="float: right; font-size: 18px; font-weight: bold;">gsoapWinInet.cpp File Reference</div>
      <br>
      <div style="float: right; font-size: 10px;">updated Thu Jun 4 2020 by Robert van Engelen</div>
     </td>
     <td width="10%">&nbsp;</td>
    </tr>
   </tbody>
  </table>
 </div>
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_1ca6747e93421ff67eb015e8be573911.html">mod_gsoap</a></li><li class="navelem"><a class="el" href="dir_392d8d33f19051d53927ef968bb8a714.html">gsoap_win</a></li><li class="navelem"><a class="el" href="dir_2c87a6d747df8280509a6a18f746cef3.html">wininet</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">gsoapWinInet.cpp File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="gsoap_win_inet_8h.html">gsoapWinInet.h</a>&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for gsoapWinInet.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="gsoap_win_inet_8cpp__incl.png" border="0" usemap="#gsoap_win_inet_8cpp" alt=""/></div>
<map name="gsoap_win_inet_8cpp" id="gsoap_win_inet_8cpp">
<area shape="rect" id="node3" href="gsoap_win_inet_8h.html" title="gsoapWinInet.h" alt="" coords="43,83,156,111"/>
</map>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structwininet__data.html">wininet_data</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a7ea0f65b665f55d10f1965ea75271a40"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#a7ea0f65b665f55d10f1965ea75271a40">_ASSERTE</a>(b)</td></tr>
<tr class="separator:a7ea0f65b665f55d10f1965ea75271a40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ad12b1656f2cbc54d8ac9bcf7d721cb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#a9ad12b1656f2cbc54d8ac9bcf7d721cb">UNUSED_ARG</a>(x)                &#160;&#160;&#160;(x)</td></tr>
<tr class="separator:a9ad12b1656f2cbc54d8ac9bcf7d721cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cfcbd81e5b20957454c3df96470f9ca"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#a7cfcbd81e5b20957454c3df96470f9ca">INVALID_BUFFER_LENGTH</a>&#160;&#160;&#160;((DWORD)-1)</td></tr>
<tr class="separator:a7cfcbd81e5b20957454c3df96470f9ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c236141eac5111947a5b5d7786ead2f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#a4c236141eac5111947a5b5d7786ead2f">wininet_free_error_message</a>(x)</td></tr>
<tr class="separator:a4c236141eac5111947a5b5d7786ead2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a65960b8db10dc9315bdf7d70792a9848"><td class="memItemLeft" align="right" valign="top">static BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#a65960b8db10dc9315bdf7d70792a9848">wininet_init</a> (struct soap *soap, struct <a class="el" href="structwininet__data.html">wininet_data</a> *a_pData, DWORD a_dwRequestFlags)</td></tr>
<tr class="separator:a65960b8db10dc9315bdf7d70792a9848"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69ea86ec0b223254006555e76a84a9f4"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#a69ea86ec0b223254006555e76a84a9f4">wininet_copy</a> (struct soap *soap, struct soap_plugin *a_pDst, struct soap_plugin *a_pSrc)</td></tr>
<tr class="separator:a69ea86ec0b223254006555e76a84a9f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81ad5c5e43623c3c28b0b3ffd7d13b57"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#a81ad5c5e43623c3c28b0b3ffd7d13b57">wininet_delete</a> (struct soap *soap, struct soap_plugin *a_pPluginData)</td></tr>
<tr class="separator:a81ad5c5e43623c3c28b0b3ffd7d13b57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5dac0736a81a02422a81434b75d301a3"><td class="memItemLeft" align="right" valign="top">static SOAP_SOCKET&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#a5dac0736a81a02422a81434b75d301a3">wininet_connect</a> (struct soap *soap, const char *a_pszEndpoint, const char *a_pszHost, int a_nPort)</td></tr>
<tr class="separator:a5dac0736a81a02422a81434b75d301a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82cde5b4b5d87489d01abaab813d5550"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#a82cde5b4b5d87489d01abaab813d5550">wininet_post_header</a> (struct soap *soap, const char *a_pszKey, const char *a_pszValue)</td></tr>
<tr class="separator:a82cde5b4b5d87489d01abaab813d5550"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a546c42571972ad477ecda0f3eb1bca5a"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#a546c42571972ad477ecda0f3eb1bca5a">wininet_fsend</a> (struct soap *soap, const char *a_pBuffer, size_t a_uiBufferLen)</td></tr>
<tr class="separator:a546c42571972ad477ecda0f3eb1bca5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a089ca156921310b1e0a55d074f765175"><td class="memItemLeft" align="right" valign="top">static size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#a089ca156921310b1e0a55d074f765175">wininet_frecv</a> (struct soap *soap, char *a_pBuffer, size_t a_uiBufferLen)</td></tr>
<tr class="separator:a089ca156921310b1e0a55d074f765175"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa6e33506c33f90fb3ba906105002706"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#afa6e33506c33f90fb3ba906105002706">wininet_disconnect</a> (struct soap *soap)</td></tr>
<tr class="separator:afa6e33506c33f90fb3ba906105002706"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f4bc1a795a709f39c8f2c93a1b135ce"><td class="memItemLeft" align="right" valign="top">void CALLBACK&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#a3f4bc1a795a709f39c8f2c93a1b135ce">wininet_callback</a> (HINTERNET hInternet, DWORD_PTR dwContext, DWORD dwInternetStatus, LPVOID lpvStatusInformation, DWORD dwStatusInformationLength)</td></tr>
<tr class="separator:a3f4bc1a795a709f39c8f2c93a1b135ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5051779c6e7c404a3ef6c5148fe62cfb"><td class="memItemLeft" align="right" valign="top">static BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#a5051779c6e7c404a3ef6c5148fe62cfb">wininet_have_connection</a> (struct soap *soap, struct <a class="el" href="structwininet__data.html">wininet_data</a> *a_pData)</td></tr>
<tr class="separator:a5051779c6e7c404a3ef6c5148fe62cfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a004d736db6ec9a27e65780910727f45a"><td class="memItemLeft" align="right" valign="top">static DWORD&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#a004d736db6ec9a27e65780910727f45a">wininet_set_timeout</a> (struct soap *soap, struct <a class="el" href="structwininet__data.html">wininet_data</a> *a_pData, const char *a_pszTimeout, DWORD a_dwOption, int a_nTimeout)</td></tr>
<tr class="separator:a004d736db6ec9a27e65780910727f45a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c7b92e13e793d85a899fdba1c0c43d0"><td class="memItemLeft" align="right" valign="top">static BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#a3c7b92e13e793d85a899fdba1c0c43d0">wininet_resolve_send_error</a> (HINTERNET a_hHttpRequest, DWORD a_dwErrorCode)</td></tr>
<tr class="separator:a3c7b92e13e793d85a899fdba1c0c43d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6bca696008832fa8d798bc40766c122"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#ac6bca696008832fa8d798bc40766c122">wininet_plugin</a> (struct soap *soap, struct soap_plugin *a_pPluginData, void *a_dwRequestFlags)</td></tr>
<tr class="separator:ac6bca696008832fa8d798bc40766c122"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbab56511e35552c5ba73e86db75bfa4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#abbab56511e35552c5ba73e86db75bfa4">wininet_set_rse_callback</a> (struct soap *soap, <a class="el" href="gsoap_win_inet_8h.html#ab68f9fb788e6057e225f8984c7345911">wininet_rse_callback</a> a_pRsecallback)</td></tr>
<tr class="separator:abbab56511e35552c5ba73e86db75bfa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a12aa8bce1471081f4ea872361d5381c4"><td class="memItemLeft" align="right" valign="top">static const char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="gsoap_win_inet_8cpp.html#a12aa8bce1471081f4ea872361d5381c4">wininet_id</a> [] = &quot;wininet-2.3&quot;</td></tr>
<tr class="separator:a12aa8bce1471081f4ea872361d5381c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a7ea0f65b665f55d10f1965ea75271a40"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define _ASSERTE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a7cfcbd81e5b20957454c3df96470f9ca"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define INVALID_BUFFER_LENGTH&#160;&#160;&#160;((DWORD)-1)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a9ad12b1656f2cbc54d8ac9bcf7d721cb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define UNUSED_ARG</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;(x)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a4c236141eac5111947a5b5d7786ead2f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define wininet_free_error_message</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a3f4bc1a795a709f39c8f2c93a1b135ce"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void CALLBACK wininet_callback </td>
          <td>(</td>
          <td class="paramtype">HINTERNET&#160;</td>
          <td class="paramname"><em>hInternet</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DWORD_PTR&#160;</td>
          <td class="paramname"><em>dwContext</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DWORD&#160;</td>
          <td class="paramname"><em>dwInternetStatus</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPVOID&#160;</td>
          <td class="paramname"><em>lpvStatusInformation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DWORD&#160;</td>
          <td class="paramname"><em>dwStatusInformationLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>this is mostly for debug tracing </p>

</div>
</div>
<a class="anchor" id="a5dac0736a81a02422a81434b75d301a3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static SOAP_SOCKET wininet_connect </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>a_pszEndpoint</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>a_pszHost</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>a_nPort</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Called from a client proxy to open a connection to a Web Service located at endpoint. Input parameters host and port are micro-parsed from endpoint. Should return a valid file descriptor, or SOAP_INVALID_SOCKET and soap-&gt;error set to an error code. Built-in gSOAP function: tcp_connect </p>

</div>
</div>
<a class="anchor" id="a69ea86ec0b223254006555e76a84a9f4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int wininet_copy </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct soap_plugin *&#160;</td>
          <td class="paramname"><em>a_pDst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct soap_plugin *&#160;</td>
          <td class="paramname"><em>a_pSrc</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>copy the private data structure's parameters </p>

</div>
</div>
<a class="anchor" id="a81ad5c5e43623c3c28b0b3ffd7d13b57"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void wininet_delete </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct soap_plugin *&#160;</td>
          <td class="paramname"><em>a_pPluginData</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>deallocate of our private structure </p>

</div>
</div>
<a class="anchor" id="afa6e33506c33f90fb3ba906105002706"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int wininet_disconnect </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Called by client proxy multiple times, to close a socket connection before a new socket connection is established and at the end of communications when the SOAP_IO_KEEPALIVE flag is not set and soap.keep_alive = 0 (indicating that the other party supports keep alive). Should return SOAP_OK, or a gSOAP error code. Built-in gSOAP function: tcp_disconnect </p>

</div>
</div>
<a class="anchor" id="a089ca156921310b1e0a55d074f765175"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static size_t wininet_frecv </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>a_pBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>a_uiBufferLen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Called for all receive operations to fill buffer s of maximum length n. Should return the number of bytes read or 0 in case of an error, e.g. EOF. Built-in gSOAP function: frecv </p>

</div>
</div>
<a class="anchor" id="a546c42571972ad477ecda0f3eb1bca5a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int wininet_fsend </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>a_pBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>a_uiBufferLen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Called for all send operations to emit contents of s of length n. Should return SOAP_OK, or a gSOAP error code. Built-in gSOAP function: fsend</p>
<p>Notes: I do a heap of buffering here because we need the entire message available in a single buffer in order to iterate through the sending loop. I had hoped that the SOAP_IO_STORE flag would have worked to do the same, however this still breaks the messages up into blocks. Although there were a number of ways this could've been implemented, this works and supports all of the possible SOAP_IO flags, even though the entire message is still buffered the same as if SOAP_IO_STORE was used. </p>

</div>
</div>
<a class="anchor" id="a5051779c6e7c404a3ef6c5148fe62cfb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static BOOL wininet_have_connection </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structwininet__data.html">wininet_data</a> *&#160;</td>
          <td class="paramname"><em>a_pData</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>check to ensure that our connection hasn't been disconnected and disconnect remaining handles if necessary. </p>

</div>
</div>
<a class="anchor" id="a65960b8db10dc9315bdf7d70792a9848"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static BOOL wininet_init </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structwininet__data.html">wininet_data</a> *&#160;</td>
          <td class="paramname"><em>a_pData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DWORD&#160;</td>
          <td class="paramname"><em>a_dwRequestFlags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>initialize private data </p>

</div>
</div>
<a class="anchor" id="ac6bca696008832fa8d798bc40766c122"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int wininet_plugin </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct soap_plugin *&#160;</td>
          <td class="paramname"><em>a_pPluginData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>a_dwRequestFlags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>plugin registration </p>

</div>
</div>
<a class="anchor" id="a82cde5b4b5d87489d01abaab813d5550"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int wininet_post_header </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>a_pszKey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>a_pszValue</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Called by http_post and http_response (through the callbacks). Emits HTTP key: val header entries. Should return SOAP_OK, or a gSOAP error code. Built-in gSOAP function: http_post_header. </p>

</div>
</div>
<a class="anchor" id="a3c7b92e13e793d85a899fdba1c0c43d0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static BOOL wininet_resolve_send_error </td>
          <td>(</td>
          <td class="paramtype">HINTERNET&#160;</td>
          <td class="paramname"><em>a_hHttpRequest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DWORD&#160;</td>
          <td class="paramname"><em>a_dwErrorCode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="abbab56511e35552c5ba73e86db75bfa4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void wininet_set_rse_callback </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="gsoap_win_inet_8h.html#ab68f9fb788e6057e225f8984c7345911">wininet_rse_callback</a>&#160;</td>
          <td class="paramname"><em>a_pRsecallback</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a004d736db6ec9a27e65780910727f45a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static DWORD wininet_set_timeout </td>
          <td>(</td>
          <td class="paramtype">struct soap *&#160;</td>
          <td class="paramname"><em>soap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structwininet__data.html">wininet_data</a> *&#160;</td>
          <td class="paramname"><em>a_pData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>a_pszTimeout</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DWORD&#160;</td>
          <td class="paramname"><em>a_dwOption</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>a_nTimeout</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="a12aa8bce1471081f4ea872361d5381c4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const char wininet_id[] = &quot;wininet-2.3&quot;</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>plugin id </p>

</div>
</div>
</div><!-- contents -->
<hr class="footer">
<address class="footer">
Copyright (C) 2020, Robert van Engelen, Genivia Inc., All Rights Reserved.
</address>
<address class="footer"><small>
Converted on Thu Jun 4 2020 12:14:19 by <a target="_blank" href="http://www.doxygen.org/index.html">Doxygen</a> 1.8.11</small></address>
<br>
<div style="height: 246px; background: #DBDBDB;">
</body>
</html>
